其他
Atlassian JIRA Velocity模板注入漏洞分析
更多安全资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)
01 漏洞描述
02 漏洞影响
Atlassian Jira 4.4.x<7.6.14 Atlassian Jira 7.7.0<7.13.5 Atlassian Jira 8.0.x < 8.0.3 Atlassian Jira 8.1.x < 8.1.2 Atlassian Jira 8.2.x < 8.2.3
03 漏洞分析
联系管理员表单功能为"开",默认为关; 已经配置好SMTP服务器,这里SMTP服务器的信息可以随便填,不影响利用。
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.jspa</url-pattern>
</servlet-mapping>
public boolean isAdministratorContactFormEnabled() {
return this.mailServerManager.isDefaultSMTPMailServerDefined() && this.applicationProperties.getOption("jira.show.contact.administrators.form") && !this.jiraSystemProperties.getBoolean("atlassian.mail.senddisabled") && !this.applicationProperties.getOption("jira.mail.send.disabled");
}
private void sendTo(ApplicationUser administrator) throws MailException {
try {
Map<String, Object> velocityParams = Maps.newHashMap();
velocityParams.put("from", this.replyTo);
velocityParams.put("content", this.details);
velocityParams.put("padSize", PADSIZE);
Email email = new Email(administrator.getEmailAddress());
email.setReplyTo(this.replyTo);
MailQueueItem item = (new EmailBuilder(email, this.getMimeType(administrator), I18nBean.getLocaleFromUser(administrator))).withSubject(this.subject).withBodyFromFile(this.getTemplateDirectory(administrator) + "contactadministrator.vm").addParameters(velocityParams).renderLater();
this.mailQueue.addItem(item);
} catch (Exception var5) {
this.log.error("Error sending JIRA Administrator email", var5);
}
}
04 漏洞修复
05 总 结
启明星辰积极防御实验室(ADLab)
ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截止目前,ADLab已通过CVE累计发布安全漏洞近1100个,通过 CNVD/CNNVD累计发布安全漏洞2000余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。